package com.polaris.live.resp.back_resp

import android.os.Parcelable

/**
 * 获取通话价格
 *
 * @author Created by 长空 on 2023/11/8/008 11:02
 */
@kotlinx.parcelize.Parcelize
data class CallPriceResp(
    /**
     * 用户当前等级beans
     */
    val beans: Long,

    /**
     * 用户当前等级总beans
     */
    val beansTotal: Long,

    /**
     * beans说明
     */
    val beansInstruction: List<InstructionVo>,

    val indicator: UserRatingIndicatorVo,

    /**
     * 用户等级
     * 10 新主播
     * 11 一级主播
     * 12 二级主播
     * 13 三级主播
     * 14 四级主播
     * 15 五级主播
     * 16 六级主播
     */
    val level: Long = 0L,

    val liveTime: LiveTimeVo,

    /**
     * 最小可修改等级
     */
    val minLevel: Long = 0L,

    /**
     * 是否达到最大等级
     */
    val maxLevel: Boolean? = null,

    /**
     * 付费beans
     */
    val payBeans: Long,

    /**
     * 用户当前付费需要的总beans
     */
    val payBeansTotal: Long,

    /**
     * 用户价格
     */
    val price: Long = 0L,

    /**
     * 通话价格列表
     */
    val priceList: List<UserCallPriceBaseVo>? = null,

    /**
     * 评级指标说明
     */
    val ratingInstruction: List<InstructionVo>,

    /**
     * 通话价格规则
     */
    val ruleList: List<AppCallPriceBaseVo>? = null,
) : Parcelable

/**
 * InstructionVo，说明vo
 */
@kotlinx.parcelize.Parcelize
data class InstructionVo(
    /**
     * 说明
     */
    val instruction: String,

    /**
     * 说明名称
     */
    val name: String,
) : Parcelable

/**
 * UserRatingIndicatorVo，用户评级指标
 */
@kotlinx.parcelize.Parcelize
data class UserRatingIndicatorVo(
    /**
     * 指标 如果为空则不显示
     */
    val indicators: List<RatingIndicatorVo>,

    /**
     * 今日通话数
     */
    val todayCount: Long,
    /**
     * 主播等级
     */
    val level: Int = 0,
) : Parcelable

/**
 * RatingIndicatorVo
 */
@kotlinx.parcelize.Parcelize
data class RatingIndicatorVo(
    /**
     * 当前指标
     */
    val current: String,

    /**
     * 指标名称
     */
    val name: String,

    /**
     * 下一级指标
     */
    val next: String,
) : Parcelable

/**
 * LiveTimeVo
 */
@kotlinx.parcelize.Parcelize
data class LiveTimeVo(
    /**
     * 直播时长
     */
    val liveTime: Long,

    /**
     * 坐等时长
     */
    val waitTime: Long,

    /**
     * 派对时长
     */
    val partyTime: Long,
) : Parcelable

/**
 * UserCallPriceBaseVo，用户通话价格vo
 */
@kotlinx.parcelize.Parcelize
data class UserCallPriceBaseVo(
    /**
     * 最小可设置等级
     */
    val minLevel: Long = 0L,

    /**
     * 通话价格
     */
    val price: Long = 0L,

    /**
     * 是否可设置
     */
    val setting: Boolean = false,
) : Parcelable

/**
 * AppCallPriceBaseVo，用户价格基础类型
 */
@kotlinx.parcelize.Parcelize
data class AppCallPriceBaseVo(
    /**
     * 可获取的beans
     */
    val beans: Long = 0L,

    /**
     * 等级
     */
    val level: Long = 0L,

    /**
     * 通话价格
     */
    val price: Long = 0L,

    /**
     * 是否可设置
     */
    val setting: Boolean = false,
) : Parcelable
